Machine Learning Models From Scratch